//*************************************************************************//
//*           _____   ____________            ______               __     *//
//*          / /__ \ / ____/ ____/           / ____/___  _________/ /     *//
//*     __  / /__/ // __/ / __/    ______   / /_  / __ \/ ___/ __  /      *//
//*    / /_/ // __// /___/ /___   /_____/  / __/ / /_/ / /  / /_/ /       *//
//*    \____//____/_____/_____/           /_/    \____/_/   \__,_/        *//
//*                                                                       *//
//*     Copyright (c) 2006 Ford Argentina. All Rights Reserved.           *//
//*                                                                       *//
//*************************************************************************//

package ar.com.ford.it.webengine.helper;

import java.util.Date;
import com.ford.it.logging.ILogger;
import com.ford.it.logging.LogFactory;

/**
 * FordAppDate <br>
 * Permite obtener Fecha y Hora del momento en que se invoca el constructor.
 * Esta pensado para cuando no sirve utilizar la fecha y hora del sistema.
 * @author aJi
 */
public abstract class FordAppDate extends Date {

    private static final String CLASS_NAME = FordAppDate.class.getName();
    private static final ILogger log = LogFactory.getInstance().getLogger(CLASS_NAME);

	/**
	 * Constructor <br>
	 * Setea la fecha y hora actuales.
	 */
	public FordAppDate() {
		String METHOD_NAME="AbstractAppDate";
		log.entering(CLASS_NAME, METHOD_NAME);

		super.setTime(getCurrentTime());

		log.exiting(CLASS_NAME, METHOD_NAME);
	}


	/**
	 * Metodo que se debe sobreescribir al extender la clase, retornando la fecha y hora
	 * actuales como un long.
	 * @return long Fecha y hora actuales
	 */
	protected abstract long getCurrentTime();

}
